As is well known, a communication system may utilize multiple communication channels to communicate signals between transmitters and receivers of the system. For example, multiple channels may be used to separate different transmitted data signals from one another.
A problem that can arise in multiple channel communication systems relates to crosstalk between the various channels, also referred to as inter-channel crosstalk. For example, in a typical digital subscriber line (DSL) system, each of the channels may comprise orthogonal frequency division multiplexed (OFDM) tones or discrete multitone (DMT) modulation tones transmitted over a physical communication link such as twisted-pair copper wire. A transmission on one subscriber line may cause interference on other subscriber lines which can result in performance degradation of the system. More generally, a given “victim” channel may experience crosstalk from multiple “disturber” channels, again leading to undesirable interference. Of course, it is to be understood that interference can be mutual, i.e., a victim channel can be a disturber channel, and a disturber channel can be a victim channel.
A DSL precoder is a matrix digital filter which acts on signals to be transmitted simultaneously so as to reduce or eliminate the crosstalk interference between them. To perform this function ideally, the precoder must employ the exact values of the relative crosstalk coefficients between the given lines.
However, it is difficult to provide accurate crosstalk estimates rapidly, both because of the precision required and because these coefficients change over time as a result of temperature changes and other external factors. Since there may be several hundred tones to be measured both downstream and upstream, the process of obtaining these estimates can be numerically quite intensive.
A need exists for techniques that efficiently obtain channel crosstalk estimates in DSL systems and other forms of interference such as alien crosstalk from co-located lines with DMT signals unsynchronized to the victim line.